package com.sinochem.yunlian.ship.api.vo.trade;

import lombok.Data;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Auther: zzd
 * @Dscription:  单独创建订单或单独创建运单的时候调用创建订单
 * @Date: 2017/11/23
 **/
@Data
public class TrdOrderInfo {

    //运单ID
    private Long waybillId;
    //运单编号
    private String waybillNo;
    //货主公司id
    private Long cargoCompanyId;
    //货主公司名称
    private String cargoCompanyName;
    //船东公司id
    private Long shipCompanyId;
    //船东公司名称
    private String shipCompanyName;
    //联系人
    private String contactName;
    //联系人号码
    private String contactPhone;
    //联系人公司名称
    private String contactCompanyName;
    //船舶id
    private Long shipId;
    //船舶编号
    private String shipNo;
    //船舶名称
    private String shipName;
    //成交价格
    private BigDecimal price;
    //货品ID
    private Long materialCategoryId;
    //货品名称
    private String materialCategoryName;
    //配载载货量
    private BigDecimal signTotal;
    //配载载货量变化范围
    private BigDecimal signTotalRange;
    //损耗
    private BigDecimal loss;
    //受载期开始时间
    private String loadDateStart;
    //受载期结束时间
    private String loadDateEnd;
    //线下合同编号
    private String offlineContractNo;
    //合同附件url（附件表中id）
    private String offlineContractUrl;
    //合同附件名称
    private String offlineContractName;
    //装货港id
    private Long fromPortId;
    //装货港名称
    private String fromPortName;
    private String fromWharf;
    //第一卸货港id
    private Long toPortIdF;
    private String toPortNameF;
    private BigDecimal toPortTotalF;
    private String toWharfF;
    //第二卸货港id
    private Long toPortIdS;
    private String toPortNameS;
    private BigDecimal toPortTotalS;
    private String toWharfS;
    //第三卸货港id
    private Long toPortIdT;
    private String toPortNameT;
    private BigDecimal toPortTotalT;
    private String toWharfT;
    private String remark;

    //创建时间
    private Date createTime;
    private Long createBy;
    private Long updateBy;
    private Date updateTime;
    //订单类型(0:自动;1:单独创建;2:第三方)
    private Integer type;

    private TrdOrderDetailInfo  orderDetailInfo;

    @Override
    public String toString(){
        return ToStringBuilder.reflectionToString(this);
    }
}
